package com.ldkj.panzh.service;

import com.ldkj.panzh.param.BarrierGateParam;
import com.ldkj.panzh.param.MonitoringPointParam;
import com.ldkj.panzh.param.MonitoringPointDeviceParam;
import com.ldkj.panzh.vo.BarrierGateVO;
import com.ldkj.panzh.vo.MonitoringPointVO;
import com.ldkj.panzh.vo.MonitoringPointDeviceVO;

import java.util.List;
import java.util.Map;

/**
 * 道闸（园区卡口）功能service
 *
 * @author qiancheng
 * @date 2025-11-19
 */
public interface BarrierGateService {
    /**
     * 查询道闸列表
     *
     * @param barrierGateParam 查询参数
     * @return 道闸列表数据
     */
    List<BarrierGateVO> queryBarrierGates(BarrierGateParam barrierGateParam) throws Exception;

    /**
     * 查询道闸数量和状态统计
     *
     * @param barrierGateParam 查询参数
     * @return 统计数据（总数、在线数、离线数、异常数等）
     */
    Map<String, Object> queryBarrierGateStats(BarrierGateParam barrierGateParam) throws Exception;

    /**
     * 查询园区卡口（监控点）列表
     *
     * @param monitoringPointParam 查询参数
     * @return 园区卡口列表数据
     */
    List<MonitoringPointVO> searchMonitoringPoints(MonitoringPointParam monitoringPointParam) throws Exception;

    /**
     * 查询园区卡口设备列表
     *
     * @param monitoringPointDeviceParam 查询参数
     * @return 园区卡口设备列表数据
     */
    List<MonitoringPointDeviceVO> searchMonitoringPointDevices(MonitoringPointDeviceParam monitoringPointDeviceParam) throws Exception;
}
